package cn.lili.modules.operationcenter.entity.dos;

import cn.lili.mybatis.model.BaseStandardEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import java.io.Serial;
import java.util.Date;

@Data
@TableName("li_operation_center_withdrawal")
@ApiModel(value = "运营中心-提现记录")
@NoArgsConstructor
public class OperationCenterWithdrawal extends BaseStandardEntity {

    @Serial
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "运营中心名称")
    private String operationName;

    @ApiModelProperty(value = "运营中心ID")
    private String operationId;

    @ApiModelProperty(value = "运营中心用户ID")
    private String userId;

    @ApiModelProperty(value = "提现订单号")
    private String orderNo;

    @ApiModelProperty(value = "申请提现金额")
    private Double money;

    @ApiModelProperty(value = "变动前金额")
    private Double beforeMoney;

    @ApiModelProperty(value = "变动后金额")
    private Double afterMoney;

    /**
     * @see cn.lili.modules.payment.entity.enums.WithdrawStatusEnum
     */
    @ApiModelProperty(value = "申请状态")
    private String status;

    @ApiModelProperty(value = "申请状态 枚举值")
    @TableField(exist = false)
    private String statusValue;



    @ApiModelProperty(value = "描述")
    private String remarks;

    @ApiModelProperty(value = "审核失败原因")
    private String reason;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "开始时间")
    @TableField(exist = false)
    private Date startDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "结束时间")
    @TableField(exist = false)
    private Date endDate;

    @ApiModelProperty(value = "类型：INCOME-收入，DISBURSE-支出")
    private String greenScoreType;

    /**
     * 姓名
     */
    private String settlementBankAccountName;

    /**
     * 卡号
     */
    private String settlementBankAccountNumber;

    /**
     * 开户行
     */
    private String settlementBankName;

    /**
     * 审核时间
     */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date auditTime;

}
